//app.js
const HTTP = require('./utils/util');
App({
    onLaunch: function () {
        // 展示本地存储能力
        var logs = wx.getStorageSync('logs') || []
        logs.unshift(Date.now())
        wx.setStorageSync('logs', logs)
        // wx.checkSession({
        //     success() {
        //         //session_key 未过期，并且在本生命周期一直有效
        //     },
        //     fail() {
        //         // session_key 已经失效，需要重新执行登录流程
        //         wx.login({
        //             success: res => {
        //                 console.log('code:  ' + res.code);
        //                 wx.setStorageSync('code', res.code);
        //                 wx.request({
        //                     url: HTTP.host+'/api/auth/weChatLogin',
        //                     data: {
        //                         code: res.code
        //                     },
        //                     method: 'GET',
        //                     header: {
        //                         'content-type': 'application/json' 
        //                     },
        //                     success: res => {
        //                         wx.setStorageSync('openid', res.data.data.openid);
        //                         wx.setStorageSync('session_key', res.data.data.session_key);
        //                     },
        //                     fail:res=>{
        //                         console.log(res);
        //                         wx.showToast({
        //                             icon:'none',
        //                             title:res.msg
        //                         });
        //                     }
        //                 })
        //                 // 发送 res.code 到后台换取 openId, sessionKey, unionId
        //             },
        //             fail:res=>{
        //                 wx.showToast({
        //                     icon:'none',
        //                     title:res.msg
        //                 });
        //             }
        //         });
        //     }
        // });
        //检查session_key 是否过期，如果过期wx.login-----promise版本
        const checkSession = new Promise((resolve, reject) => {
            wx.checkSession({
                success: res => { console.log(res); },
                fail: res => { resolve(res) }
            });
        });
        checkSession.then(res => {
            return new Promise((resolve, reject) => {
                wx.login({ success: res => { resolve(res) }, fail: err => { reject(err) } });
            });
        }).then(res => {
            wx.setStorageSync('code', res.code);
            return HTTP.getDataAsync('/api/auth/weChatLogin', { code: res.code });
        }, err => {
            console.log(err);
            throw new Error('wx.Login 请求失败');
        }).then(res => {
            console.log(res);
            wx.setStorageSync('openid', res.data.openid);
            wx.setStorageSync('session_key', res.data.session_key);
        }, err => {
            console.log(err);
            throw new Error('换session_key接口请求失败');
        });
    },
    onShow() {
        this.checkUpdateVersion()
    },
    //检查用户微信版本
    checkUpdateVersion() {
        //判断微信版本是否 兼容小程序更新机制API的使用
        if (wx.canIUse('getUpdateManager')) {
            //创建 UpdateManager 实例
            const updateManager = wx.getUpdateManager();
            //检测版本更新
            updateManager.onCheckForUpdate(function (res) {
                // 请求完新版本信息的回调
                if (res.hasUpdate) {
                    //监听小程序有版本更新事件
                    updateManager.onUpdateReady(function () {
                        //TODO 新的版本已经下载好，调用 applyUpdate 应用新版本并重启 （ 此处进行了自动更新操作）
                        updateManager.applyUpdate();
                    })
                    updateManager.onUpdateFailed(function () {
                        // 新版本下载失败
                        wx.showModal({
                            title: '已经有新版本喽~',
                            content: '请您删除当前小程序，到微信 “发现-小程序” 页，重新搜索打开哦~',
                        })
                    })
                }
            })
        } else {
            //TODO 此时微信版本太低（一般而言版本都是支持的）
            wx.showModal({
                title: '溫馨提示',
                content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
            })
        }
    },
    globalData: {
        userInfo: {},
        windowWidth: 0,
        gd_key: '9822015f2cc6c5ec8d16753e848bcdf7'
    }
})